package com.ctshk.rpc.finance.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.finance.dto.advance.AdvanceChargeApplyDetailDTO;
import com.ctshk.rpc.finance.dto.advance.AdvanceChargeListDTO;
import com.ctshk.rpc.finance.dto.paidin.CurrencyAmountCountDTO;
import com.ctshk.rpc.finance.req.advance.*;

import java.util.List;

/**
 * <p>
 * 财务预付 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-04-08
 */
public interface IFinanceAdvanceChargeService {

    /**
     * 查询供应商
     * @param req
     * @param currentUser
     * @return
     */
    Result<AdvanceChargeListDTO> query(AdvanceChargeListReq req, TokenUser currentUser);

    /**
     * 申请
     * @param req
     * @return
     */
    Result add(AdvanceChargeAddApplyReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(AdvanceChargeApprovalApplyReq req);

    /**
     * 申请详情
     * @param req
     * @return
     */
    Result<AdvanceChargeApplyDetailDTO> applyDetail(AdvanceChargeApplyIdReq req);

    /**
     * 申请付款-查询供应商预付款额度
     * @param req
     * @return
     */
    Result<List<CurrencyAmountCountDTO>> queryQuota(AdvanceChargeQueryQuotaReq req);
}
